公開日: 2024 年 11 月 11 日、最終更新日: 2025 年 5 月 20 日
商品の解説 | ウェブ | 拡張機能 | Chrome のステータス | インテント |
---|---|---|---|---|
MDN | 表示 | 発送の意向 |
長い記事、複雑なドキュメント、活発なチャット会話を簡潔で洞察に満ちた要約にまとめる機能をユーザーに提供できます。
Summarizer API を使用すると、さまざまな長さと形式(文、段落、箇条書きリストなど)でさまざまなタイプの要約を生成できます。この API は、次のようなシナリオで役立ちます。
- 記事やチャット会話の要点をまとめる。
- 記事のタイトルと見出しの候補を表示する。
- 長いテキストの簡潔で有益な要約を作成する。
- 書籍のレビューに基づいて書籍の予告編を生成します。
使ってみる
Summarizer API は Chrome 138 安定版から利用できます。
機能検出を実行して、ブラウザが Summarizer API をサポートしているかどうかを確認します。
if ('Summarizer' in self) {
// The Summarizer API is supported.
}
ハードウェア要件を確認する
Language Detector API と Translator API は、パソコンの Chrome でのみ動作します。
Prompt API、Summarizer API、Writer API、Rewriter API は、次の条件を満たしている場合に Chrome で動作します。
- オペレーティング システム: Windows 10 または 11、macOS 13 以降(Ventura 以降)、Linux。Android、iOS、ChromeOS 版 Chrome は、Gemini Nano を基盤とする API ではまだサポートされていません。
- ストレージ: Chrome プロファイルを含むボリュームに 22 GB 以上の空き容量。
- GPU: 4 GB を超える VRAM が必要です。
- ネットワーク: データ通信量無制限または無制限接続。
これらの要件は、開発プロセスと、作成した機能を利用するユーザーに存在します。
モデルのダウンロード
Summarizer API は、高品質な要約を生成するようにトレーニングされたモデルを使用します。この API は Chrome に組み込まれており、Gemini Nano はウェブサイトがこの API を初めて使用するときにダウンロードされるモデルです。
モデルが使用可能かどうかを確認するには、非同期の Summarizer.availability()
関数を呼び出します。次の値を含む Promise が返されます。
"unavailable"
は、実装がリクエストされたオプションをサポートしていないことを意味します。"downloadable"
は、実装がリクエストされたオプションをサポートしていることを意味しますが、まず、ブラウザがモデル(Chrome の場合は Gemini Nano)やモデルのファインチューニングなどのファイルをダウンロードする必要があります。"downloading"
は、実装がリクエストされたオプションをサポートしていることを意味しますが、続行するには進行中のダウンロードを完了する必要があります。"available"
は、実装がリクエストされたオプションをサポートしており、要約ツールを続行できることを意味します。
モデルのダウンロードをトリガーして要約ツールを作成するには、非同期の Summarizer.create()
関数を呼び出します。availability()
へのレスポンスが downloadable
または downloading
の場合、ダウンロードの進行状況をリッスンすることをおすすめします。これにより、ダウンロードが完了するまでに時間がかかり、要約が生成されるまでに時間がかかる可能性があることをユーザーに伝えることができます。
const summarizer = await Summarizer.create({
monitor(m) {
m.addEventListener('downloadprogress', (e) => {
console.log(`Downloaded ${e.loaded * 100}%`);
});
}
});
API 関数
create()
関数を使用すると、ニーズに合わせて新しい要約オブジェクトを構成できます。次のパラメータを持つ省略可能な options
オブジェクトを受け取ります。
sharedContext
: 要約ツールに役立つ追加の共有コンテキスト。type
: 要約のタイプ。有効な値はkey-points
(デフォルト)、tldr
、teaser
、headline
です。詳細は下の表をご覧ください。format
: 要約の形式。有効な値はmarkdown
(デフォルト)とplain-text
です。length
: 要約の長さ。使用できる値はshort
、medium
(デフォルト)、long
です。これらの長さの意味は、リクエストされたtype
によって異なります。たとえば、Chrome の実装では、簡単な要約は 3 つの箇条書きで構成され、簡単な概要は 1 文で構成されます。
一度設定したパラメータは変更できません。パラメータを変更する必要がある場合は、新しい要約オブジェクトを作成します。
次の表に、さまざまなタイプの要約とその長さを示します。長さは最大値を表します。結果が短くなることもあります。
タイプ | 意味 | 長さ | ||||||
---|---|---|---|---|---|---|---|---|
"tldr" |
要約は短く端的に、忙しい読者向けに入力の概要を簡単に説明する必要があります。 |
|
||||||
"teaser" |
要約は、入力内容の中で最も興味深い部分に焦点を当て、読者がさらに読み進めたくなるように作成する必要があります。 |
|
||||||
"key-points" |
サマリーは、入力から最も重要なポイントを抽出し、箇条書きで表示します。 |
|
||||||
"headline" |
要約には、記事の見出しの形式で、入力の要点を 1 文にまとめる必要があります。 |
|
次の例は、要約ツールを初期化する方法を示しています。
const options = {
sharedContext: 'This is a scientific article',
type: 'key-points',
format: 'markdown',
length: 'medium',
};
const availability = await Summarizer.availability();
let summarizer;
if (availability === 'unavailable') {
// The Summarizer API isn't usable.
return;
}
if (availability === 'available') {
// The Summarizer API can be used immediately .
summarizer = await Summarizer.create(options);
} else {
// The Summarizer API can be used after the model is downloaded.
summarizer = await Summarizer.create(options);
summarizer.addEventListener('downloadprogress', (e) => {
console.log(`Downloaded ${e.loaded * 100}%`);
});
await summarizer.ready;
}
要約ツールを実行する
要約ツールを実行する方法は、ストリーミングとバッチ(ストリーミング以外)の 2 つがあります。
バッチ要約
バッチ要約では、モデルは入力全体を処理してから出力を生成します。
バッチの概要を取得するには、summarize()
関数を呼び出します。最初の引数は、要約するテキストです。2 つ目のオプション引数は、context
フィールドを持つオブジェクトです。このフィールドには、要約の精度を高めるのに役立つ背景情報を追加できます。
const longText = document.querySelector('article').innerHTML;
const summary = await summarizer.summarize(longText, {
context: 'This article is intended for a tech-savvy audience.',
});
ストリーミングの要約
ストリーミング 要約では、結果がリアルタイムで提供されます。入力が追加または調整されると、出力は継続的に更新されます。ストリーミングの概要を取得するには、summarize()
ではなく summarizeStreaming()
を呼び出します。
const longText = document.querySelector('article').innerHTML;
const summary = await summarizer.summarizeStreaming(longText, {
context: 'This article is intended for junior developers.',
});
デモ
Summarizer API は、Summarizer API Playground で試すことができます。
標準化の取り組み
Google は、クロスブラウザの互換性を確保するため、Summarizer API の標準化に取り組んでいます。
Google の API 提案はコミュニティのサポートを受け、W3C ウェブ インキュベーター コミュニティ グループに移行され、さらに議論されています。Chrome チームは W3C 技術アーキテクチャ グループにフィードバックをリクエストし、Mozilla と WebKit に標準に関する立場を尋ねました。
Web Incubator コミュニティ グループに参加して、標準化の取り組みに参加してください。
フィードバックを共有
Summarizer API を使ってどのようなものを構築しているか、ぜひお知らせください。ウェブサイトやウェブ アプリケーションを X、YouTube、LinkedIn で共有してください。